一种基于路径关联化的多路径并行传输方法,其特征在于,对于在一条路径中丢失的一个数据,也允许由另外一条路径发送的其它数据通过gap报告指出该数据的丢失。本发明可尽快地发现数据丢失和路径异常,快速地重传丢失数据,避免一条路径的异常引起其它路径传输的信息也无法正常递交,从而限制了其它路径的正常传输。
1.一种基于路径关联化的多路径并行传输方法,其特征在于,对于在一条路径中丢失的一个数据包,允许由另外一条路径发送的其它数据包、或由该路径和另外一条路径发送的其它数据包通过gap报告指出该数据包的丢失;为每个数据包添加发送时间计时器,记录数据包未确认前的已发送时间;只有当发送时间计时器期满后,才认为数据包可能已发生丢失,将路径中连续的数次快速重传等效于一次发送超时进行处理,避免快速重传覆盖发送超时导致的路径无法关闭问题,发送时间计时器的期满值设定正比于该发送路径的平均往返时间。
2.如权利要求1所述的方法,其特征在于,接收到包含gap报告的SACK后,找出gap报告指出的缺失数据包的序号;然后,直接增长该序号数据包的丢失报告计数器。
3.如权利要求1所述的方法,其特征在于,基于SCTP协议的支持多家乡特性,在多家乡终端间建立多条路径,实现多路径并行传输CMT。
4.如权利要求1所述的方法,其特征在于,仅当数据包被数次以上被指出为gap,并且发送时间计时器期满,快速重传功能开启之后,才触发快速重传。
5.如权利要求4所述的方法,其特征在于,所述的数次为3次。
6.如权利要求1所述的方法,其特征在于:所述的数次为3次。
技术领域本发明涉及一种基于路径关联化的多路径并行传输方法,属于计算机网络技术领域。
背景技术由于传输序列号TSN的全局性,导致利用多条路径同时传输数据时,各路径的传输延时差异使得在接收端会产生TSN号接收乱序问题,导致接收端递交数据时多条路径相互制约。现有的CMT实现方案针对路径间数据乱序问题多采用分裂快速重传SFR(Splitxa0Fastxa0Retransmit)来解决。SFR算法的核心思路是只有在相同路径发送的数据才可以相互指出丢包,并增长丢失gap计数器。SFR算法的问题在于,虽然算法使路径间的传输独立了,但是接收端的缓存仍然是唯一的。在通常情况下,接收端接收的数据需要按顺序递交,即有序递交。任何数据的丢失都将导致后续所有数据无法递交上层,无论数据是否属于同路径传输,都必须等待先前数据完整后才能递交。造成这一问题的原因是采用多路径传输后,虽然各路径的传输是相对独立的,但由于所传输的属于同一个信息,在原本独立的路径之间产生了相互制约的递交关系。因此,在传输过程中仅将路径的传输相互独立,并无法使各个路径都等同于单路径传输。
发明内容本发明的目的是提供一种基于路径关联化的多路径并行传输方法,其可以尽快发现数据丢失和路径异常,快速重传丢失数据,避免因为一路径的异常而引起在其它路径传输的信息也无法正常递交,从而限制了其它路径的正常传输。为此,本发明提供了一种基于路径关联化的多路径并行传输方法,其特征在于,对于在一条路径中丢失的一个数据,也允许由另外一条路径发送的其它数据通过gap报告指出该数据的丢失。在使用CMT时,由于接收端缓存是唯一的,必须尽快发现丢失数据并进行重传,避免一条路径的异常引起其它路径传输的信息也无法正常递交,造成接收端头端阻塞,从而限制了其它路径的正常传输。允许路径间相互指出丢包可以在最短时间内发现缺失信息,改进的快速重传机制减少了允许路径相互指出丢包后带来的不必要的快速重传,快速重传与发送超时的等效机制解决了改进快速重传机制引起的快速重传覆盖发送超时的问题。
附图说明图1为根据本发明的路径之间相互指出丢包的原理示意图;图2为不必要的快速重传情况的示意图;图3为根据本发明改进的快速重传流程图;图4为本发明的应用实例示意图。
具体实施方式根据本发明,针对路径间数据乱序问题,在传输中允许路径间相互指出丢包并产生gap报告。例如,在图1中,TSN1在路径1中丢失后,在路径2发送的TSN2、3也能够通过gap报告指出TSN1的丢失。实现方法是:接收到包含gap报告的SACK后:(1)找出gap报告指出的缺失TSN数T
m;(2)直接增长T
m的丢失报告计数器。在允许路径相互指出丢包后,会由于路径间的传输性能差异产生大量的gap报告。但是,其中的很多的gap报告并不是由于丢包引起的,而是由路径的传输时延差引起的临时数据缺失。当路径间的传输时延差较大时,就可能造成不必要的快速重传,如图2所示。路径1、2的传输延时差很大,路径1发送的TSN1还没有到达接收端前,路径2发送的TSN2、3、4、5分别到达了接收端,并都产生了针对TSN1的gap报告。发送端在接收到这4次连续的带有gap报告的SACK后,将判定TSN1为丢失数据,触发快速重传。但是,其实TSN1并没有在路径1中丢失,只是传输时延太大了。此时出现了不必要的快速重传。针对不必要的快速重传,解决方案是加入一个快速重传开启条件。只有当数据的已发送时间大于某一阈值,才认为该数据有可能已经发生丢失,才允许触发快速重传。认为当发送时间大于该传输路径平均往返时间的若干倍之后,可以触发快速重传。在一个实施例中,若在快速重传功能开启前接收到连续的例如3次以上gap报告,并不立刻触发快速重传,而是推迟到快速重传功能开启时刻再触发快速重传,此时无需再等更多的gap报告。当路径长时间未收到任何SACK时,路径很可能已经发生断裂。在发送时间计时器期满时间内,若曾接收到与丢包同路径的gap报告,则说明该路径并没有发生断路,重传仍选择原路径进行发送;若未曾接收到与丢包同路径的gap报告,则说明该丢包很可能是由路径断路引起的,为了更快的成功重传信息以避免接收端缓存阻塞,可选择切换路径重传。切换路径重传仅对该丢失数据包有效,并不影响后续数据的发送选路。如图3所示,发送数据块,在未收到该数据块确认前的算法流程是:(1)准备发送(发送或重发)。添加数据到发送队列,初始化信息,初始化数据块的发送时间计时器,清零快速重传功能开启标志位,清零同路径gap报告标志位;(2)发送数据,开启发送时间计时器。设定发送时间计时器的期满时间;(3)若等待时接收到针对该数据块的gap报告,增长丢失报告计数器;(4)判断gap报告是否属于同路径,若属于同路径则设置同路径gap报告标志位;(5)发送时间计时器期满,开启快速重传功能,设置快速重传功能开启标志位;(6)判断此时丢失报告计数器是否超过3。若超过3,立刻进行快速重传,返回步骤(1);否则,继续等待直到发送超时;(7)快速重传时,若同路径gap报告标志位为1,则使用原路径重传数据,若同路径gap报告标志位为0,则切换路径重传数据;(8)数据块发送后,任何时刻接收到该数据块的确认信息,都将使该数据块关闭发送时间计时器,清0快速重传功能开启标志位,清0丢失报告计数器,清0同路径gap报告标志位。根据本发明的快速重传机制,可避免不必要的快速重传情况。例如,TSN2~5连续4次指出了TSN1的缺失,但是TSN1的发送时间计时器并未超时,快速重传功能就不开启。TSN1在该数据块发送时间计时器超时前收到了确认信息,先前的4次gap报告被舍弃,避免了不必要的快速重传。另外一方面,如果TSN5连续第4次指出了TSN1的缺失,但是由于TSN1的发送时间计时器并未超时,快速重传并不被立刻触发。当发送时间计时器超时后,快速重传功能开启,并由于已有多于3次的连续gap报告,因此立刻触发快速重传。根据本发明,快速重传机制允许路径间相互指出丢包,并允许根据其它路径指出的gap报告进行快速重传,这使得某条路径断开后,等待发送超时不再是发送端唯一能做的工作。只要在发生发送超时前满足快速重传的触发条件,快速重传就存在覆盖发送超时的可能性,但由于路径的关闭机制都是基于发送超时的,这会导致发送超时被覆盖后路径不能正常关闭。针对快速重传覆盖发送超时的问题,加入快速重传与发送超时的等效机制。在路径没有收到任何确认的情况下,将连续的例如3次快速重传等效为一次发送超时处理。如图4所示,两个网络终端A,B都分别具有2块网卡:有线网卡、无线网卡,并且两个终端都使用SCTP以支持多家乡特性。用户A拥有无线网卡对应地址IP1和有线网卡对应地址IP2;同样,用户B拥有无线网卡对应地址IP3和有线网卡对应地址IP4。步骤1:用户A,B通过4次握手建立一个SCTP关联;步骤2:选择使用无线地址组IP1,IP3,建立无线路径1;步骤3:选择使用有线地址组IP2,IP4,建立有线路径2;步骤4:根据接收窗口rwnd和拥塞窗口cwnd确定可发送数据量,并根据Fastest-Path-First(FPF)原则为每个传输数据块选择传输路径;步骤5:发送数据,启动发送时间计时器;步骤6:若返回信息SACK中无gap报告,则根据SACK更新rwnd和路径cwnd,返回步骤4;步骤7:若返回SACK中带有gap报告,则根据SCTP规则判断是否增长丢失报告计数,并根据SACK更新rwnd和路径cwnd,返回步骤4;步骤8:若某数据块的发送时间计时器期满,判断是否满足丢包计数大于3的重传条件,若满足,则触发快速重传,根据重传选路机制为数据选择路径并发送;步骤9:快速重传后,重启发送时间计时器,增长连续快速重传计数器;步骤10:若某数据块发送超时,则切换路径重传数据,并重启发送时间计时器;步骤11:若连续快速重传计数器的计数值大于0且为3的倍数时,执行一次等效发送超时处理;步骤12:每次收到SACK,该路径的连续快速重传计数器清0。应用分析:在使用路径1、路径2并行传输时,有线路径2的性能明显优于无线路径1。由于允许路径相互指出丢包,而有线路径2的往返时间又有明显优势,将频繁出现针对路径1的gap报告,此时,改进的快速重传机制能够避免不必要快速重传的发生,又能使系统在短时间内发现数据包的丢失。如果不允许路径相互指出丢包(例如分裂快速重传SFR),路径1的丢失数据只能由同路数据指出,即需要等待该无线路径后续数据的返回信息。而允许路径相互指出丢包后,路径1的丢失数据可以被有线路径2的返回信息快速指出,只需再等待发送计时器期满就能够触发快速重传,更早地重传信息,从而避免接收缓存阻塞。尤其在无线路径突然发生故障时,改进的快速重传机制使接收端无需再等待漫长的发送超时,而是尽早地触发了快速重传,并通过快速重传与发送超时等效机制,在连续多次快速重传后正常关闭异常路径。本发明主要适用于路径间性能差异较大的CMT场合,如应用举例的有线加无线情况。单路径的性能越差,越需要允许路径间相互指出丢包,这有助于快速发现丢失数据并进行重传;路径间的性能差异越大,越需要避免不必要的快速重传,改进快速重传机制的效果越明显。本发明主要是针对不稳定网络环境和大性能差异路径组提出的多路径并行传输CMT实现方案。